package com.jeesite.modules.task.audit.dao;

import com.jeesite.common.dao.CrudDao;
import com.jeesite.common.mybatis.annotation.MyBatisDao;
import com.jeesite.modules.task.action.entity.DcSupTaskAction;
import com.jeesite.modules.task.audit.entity.DcSupTaskAudit;
import com.jeesite.modules.task.audit.entity.DcSupTaskAuditArrangeApp;
import com.jeesite.modules.task.audit.entity.DcSupTaskAuditFeedbackApp;
import com.jeesite.modules.task.audit.entity.DcSupTaskAuditInfoApp;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 任务过程审核表DAO接口
 * @author zrr
 * @version 2022-03-02
 */
@MyBatisDao
public interface DcSupTaskAuditDao extends CrudDao<DcSupTaskAudit> {

    /**
     * 查询审核列表-任务部署审核-待审核和审核历史
     * @param dcSupTaskAudit
     * @return
     */
    List<DcSupTaskAudit> getAuditListDeploy(DcSupTaskAudit dcSupTaskAudit);

    /**
     * 查询审核列表-任务部署审核-待审核-通过年份、督办字号、标题、类型查询其子项
     * @param dcSupTaskAudit
     * @return
     */
    List<DcSupTaskAudit> getAuditListDeployByParent(DcSupTaskAudit dcSupTaskAudit);

    /**
     * 查询审核列表-任务部署审核-审核历史-通过年份、督办字号、标题、类型查询其子项
     * @param dcSupTaskAudit
     * @return
     */
    List<DcSupTaskAudit> getAuditListedDeployByParent(DcSupTaskAudit dcSupTaskAudit);

    /**
     * 查询审核列表-任务反馈审核-待审核
     * @param dcSupTaskAudit
     * @return
     */
    List<DcSupTaskAudit> getAuditListFeedback(DcSupTaskAudit dcSupTaskAudit);

    /**
     * 查询审核列表-任务反馈审核-审核历史
     * @param dcSupTaskAudit
     * @return
     */
    List<DcSupTaskAudit> getAuditListedFeedback(DcSupTaskAudit dcSupTaskAudit);

    /**
     * 查询审核列表-任务整理审核-待审核
     * @param dcSupTaskAudit
     * @return
     */
    List<DcSupTaskAudit> getAuditListArrange(DcSupTaskAudit dcSupTaskAudit);

    /**
     * 查询审核列表-任务整理审核-审核历史
     * @param dcSupTaskAudit
     * @return
     */
    List<DcSupTaskAudit> getAuditListedArrange(DcSupTaskAudit dcSupTaskAudit);

    /**
     * 查询审核列表-任务细化分解审核-待审核
     * @param dcSupTaskAudit
     * @return
     */
    List<DcSupTaskAudit> getAuditListRefine(DcSupTaskAudit dcSupTaskAudit);

    /**
     * 查询审核列表-任务细化分解审核-审核历史
     * @param dcSupTaskAudit
     * @return
     */
    List<DcSupTaskAudit> getAuditListedRefine(DcSupTaskAudit dcSupTaskAudit);

    /**
     * 查询审核记录
     * @param dcSupTaskAudit
     * @return
     */
    List<DcSupTaskAudit> getAuditListRecord(DcSupTaskAudit dcSupTaskAudit);

    List<DcSupTaskAuditInfoApp> queryAuditInfoListApp(DcSupTaskAuditInfoApp auditInfo);

    List<DcSupTaskAuditFeedbackApp> queryAuditFeedbackListApp(DcSupTaskAuditFeedbackApp auditInfo);

    DcSupTaskAuditArrangeApp queryAuditArrangeFormApp(DcSupTaskAuditArrangeApp auditInfo);

    DcSupTaskAction getActionByFeedbackId(String targetId);

    void updateActionTaskProgress(String taskProgress , String id);

    List<DcSupTaskAudit> getAuditListInfo(@Param("targetId") String targetId,@Param("auditStatus") String auditStatus,@Param("targetType") String targetType,@Param("auditType") String auditType);

    void deleteAuditFeedback(@Param("targetId") String targetId,@Param("auditStatus") String auditStatus,@Param("targetType") String targetType,@Param("auditType") String auditType);
}